home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / GENetReleaseƒ / GEDemo / Sign.c < prev    next >
Text File  |  1994-01-27  |  2KB  |  73 lines

  1. /*
  2.     Sign.c
  3.     
  4.     User-entered text for Graphic Elements demo
  5.     
  6.     Copyright 1993 by Al Evans. All rights reserved.
  7.     
  8.     11/11/93
  9.     
  10. */
  11.  
  12. #include "Sign.h"
  13.  
  14. Str255    signText = "\pMessage Here!";
  15. typedef struct {
  16.             Boolean signOn;
  17.             RGBColor color[2];
  18. } BlinkRec, *BlinkRecPtr;
  19.  
  20. BlinkRec    signBlink;
  21.  
  22. Boolean LoadSignScene(GEWorldPtr world)
  23. {
  24.     GrafElPtr        thisElement;
  25.     short            fontNum;
  26.     
  27.     GetFNum("\pChicago", &fontNum);
  28.     
  29.     signBlink.signOn = false;
  30.     signBlink.color[0].red = 194 << 8;
  31.     signBlink.color[0].green = 194 << 8;
  32.     signBlink.color[0].blue = 0;
  33.     signBlink.color[1].red = 240 << 8;
  34.     signBlink.color[1].green = 240 << 8;
  35.     signBlink.color[1].blue = 46 << 8;
  36.     
  37.     //Create sign
  38.     thisElement = NewTextGraphic(world, signID, signPlane, signLeft, signTop, srcOr,
  39.                             fontNum, bold, 18, signBlink.color[signBlink.signOn], signText);
  40.     if (!thisElement) return false;
  41.     
  42.     //Initialize blinking action
  43.     SetAutoChange(world, signID, DoSign, (Ptr) &signBlink, 750);
  44.     
  45.     return true;
  46.                     
  47. }
  48.  
  49. pascal void DoSign(GEWorldPtr world, GrafElPtr sign)
  50. {
  51. #pragma unused (world)
  52.     BlinkRecPtr    blink;
  53.     
  54.     blink = (BlinkRecPtr) sign->changeData;
  55.     
  56.     blink->signOn = !blink->signOn;
  57.     ((TextGraphicPtr) sign)->tgColor = blink->color[blink->signOn];
  58.     ChangedRect(world, &sign->animationRect);
  59. }
  60.  
  61. pascal void GetSignText(StringPtr oldText)
  62. {
  63.     BlockMove((Ptr) signText, (Ptr) oldText, (long) *signText + 1);
  64. }
  65.  
  66. //Change sign text
  67. pascal void SetSignText(GEWorldPtr world, StringPtr newText)
  68. {
  69.     BlockMove((Ptr) newText, (Ptr) signText, (long) *newText + 1);
  70.     SetTextGraphicText(world, signID, signText);
  71. }
  72.  
  73.